In broadband packet network nodes (e.g., Internet protocol—IP routers), the majority of packet processing normally occurs as each packet enters the node (referred to as ingress processing). Such ingress processing typically includes forwarding table look-up to selecting an appropriate output interface, and loading each packet into a queue for transport through a switch fabric to the selected output interface. A minimal amount of egress processing is typically performed (within the output interface) as each packet leaves the node.
As is known in the art, traffic flows with differing latency requirements can be handled using a prioritization scheme as part of the ingress processing. The purpose of any prioritization scheme is to minimize delays experienced by high priority traffic being transported through the node. In general, prioritization schemes may be broadly classified as either preemptive, or non-preemptive. In a preemptive scheme, a high priority packet can preempt a lower priority packet already loaded into the queue for transport through the switch core. If transport of that low priority packet has already begun, then it is terminated so that the higher priority packet can be sent without delay. In contrast, in a non-preemptive scheme, if transport of a lower priority packet through the switch core has already begun, then it is allowed to continue uninterrupted. However, the higher priority packet must then be sent before the next lower priority packet is loaded into the queue.
Both of these schemes have disadvantages. In particular, the pre-emptive scheme requires comparatively complex input processing and leads to an inefficient utilization of network resources. For example, preemption of a partially transmitted (lower priority) packet means that the “sent” portion of the packet is discarded. This results in lowered efficiency, as network resources have been utilized to transport a partial packet that is subsequently discarded. Furthermore, in order to permit re-sending of the packet, it must be retained in memory (in the input interface) until it has been successfully transported through the switch fabric to the output interface. In addition, even when lower priority traffic is preempted, the additional processing required to implement this scheme imposes its own delays on the high priority traffic. As may be appreciated, the non-preemptive scheme avoids many of these difficulties, but at the expense of increasing latency of the high priority traffic, which is delayed until transmission of an already partially sent packet has completed.
In practice, conventional prioritization schemes can result in the high priority traffic incurring a delay well in excess of 100 μSec at the input interface. For most Internet Protocol (IP) traffic, such delays are acceptable. However, many traffic types have very stringent latency requirements. For example, under the Synchronous Optical Network (SONET) protocol, frame latency within a node (not just within the input interface) is restricted to a few tens of micro-seconds. Voice over IP (VoIP) and multimedia traffic are also latency-sensitive. While it would be desirable to transport a wide variety of traffic types across common network infrastructure, current prioritization schemes cannot reliably satisfy the stringent latency requirements of SONET traffic.
Accordingly, a system that enables traffic flows with differing latency requirements to be efficiently transported across a common network infrastructure remains highly desirable.